home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
conv.z
/
conv
Wrap
Text File
|
1996-03-14
|
5KB
|
133 lines
LLLLIIIIBBBBCCCCOOOONNNNVVVV((((3333FFFF)))) LLLLIIIIBBBBCCCCOOOONNNNVVVV((((3333FFFF))))
NNNNAAAAMMMMEEEE
conv, libconv, convolution, correlation - Convolution and Correlation
Library
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
LIBCONV is an optimized library available on Silicon Graphics computers.
It features Convolution for Finite Impulse Response (FIR) and Infinite
Impulse Response (IIR) filters, together with Correlations. The library
modules take 1D and 2D inputs, and are available in single and double
precision for real and complex arithmetic. The 2D subprograms have been
parallelized and take fully advantage of SGI parallel architecture.
The two main goals of the Convolution and Correlation library are
performance and generality. It provides well tuned modules usable in most
convolution and correlation instances.
To achieve maximum flexibility, 1D sequence are defined by 3 parameters,
while 6 parameters are necessary for 2D inputs. One drawback of this
versatility may come from the (very) long calling sequences (up to 23
parameters for sfir2d). To help the user, systematic conventions were
used for modules names, calling parameters and sequence definition.
CCCC iiiinnnntttteeeerrrrffffaaaacccceeee
For the C interface two types "complex" and "zomplex" have been defined
as structures of two floating point variables ( re, im ). They are
equivalent to the "complex" and "double complex" Fortran types.
typedef struct {
float re;
float im; } complex;
typedef struct {
double re;
double im; } zomplex;
These types as well as the prototypes of the different functions for
convolution and correlations are defined in the "/usr/include/conv.h"
header file.
NNNNAAAAMMMMIIIINNNNGGGG CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNNSSSS
The name of each Convolution and Correlation routine is a coded
specification of its function (6 or 7-character names).
All driver and computational routines have names of the form XYYYMND
The first letter, X, indicates the data type as follows:
S REAL
PPPPaaaaggggeeee 1111
LLLLIIIIBBBBCCCCOOOONNNNVVVV((((3333FFFF)))) LLLLIIIIBBBBCCCCOOOONNNNVVVV((((3333FFFF))))
D DOUBLE PRECISION
C COMPLEX
Z COMPLEX*16 or DOUBLE COMPLEX
The next three letters, YYY, indicate the type of computation performed.
For example, ffffiiiirrrr for FIR convolution, iiiiiiiirrrr for IIR filtering, and ccccoooorrrr for
Correlation.
The next two letters, MN, are the dimension. MN can be a 1 or 2
character string: 1111 or 2222 for 1D and 2D modules, and MMMM1111 for "multiple 1D"
subprograms.
SSSSUUUUMMMMMMMMAAAARRRRYYYY
------------------------------------------------------------------
| | | |
| | 1 Dimension | 2 Dimensions |
------------------------------------------------------------------
| | FIR | IIR | Corre- | FIR | IIR | Corre- |
| | filter | filter | lation | filter | filter | lation |
------------------------------------------------------------------
| | | | | | | |
| Real | sfir1d | siir1d | scor1d | sfir2d | siir2d | scor2d |
| Single | | | | sfirm1d | siirm1d| scorm1d|
| | | | | | | |
| Real | dfir1d | diir1d | dcor1d | dfir2d | diir2d | dcor2d |
| Double | | | | dfirm1d | diirm1d| dcorm1d|
| | | | | | | |
| Complex | cfir1d | ciir1d | ccor1d | cfir2d | ciir2d | ccor2d |
| Double | | | | cfirm1d | ciirm1d| ccorm1d|
| | | | | | | |
| Complex | zfir1d | ziir1d | zcor1d | zfir2d | ziir2d | zcor2d |
| Double | | zcfirm1d| ziirm1d| zcorm1d|
------------------------------------------------------------------
For example:
sfir1d applies a FIR filter to single precision real 1D signals,
diir1d performs a IIR filtering on double precision 1D data,
cfirm1d applies a 1D FIR filter for each column of a 2D single
complex array, and
zcor2d computes the correlation of 2D double complex sequences.
PPPPaaaaggggeeee 2222